import { fileURLToPath, URL } from 'node:url';

import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd());
  return {
    plugins: [vue(), vueJsx()],
    base: './',
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    },
    server: {
      port: 3000,
      open: true,
      proxy: {
        // 接口的前缀
        '/api': {
          // 目标服务器地址
          target: env.VITE_BACKEND_URL,
          // 是否支持跨域
          changeOrigin: true,
          // 该服务器是否有 websocket 的接口 支持
          ws: true,
          // 重写多余的 前缀 为空
          rewrite: (path: string) => path.replace('/api', '')
        }
      }
    }
  };
});

/**
 * 一切的故事都是从一个文件开始的，这个文件就是vite.config.ts
 * 它是一段旅程的起点，也是一段旅程的终章。
 * 如同一位守望者，它静静地注视着项目的呼吸，从最初的萌芽到最终的芬芳。
 * 它，就像一位神秘的编舞者，在无数个寂静的夜晚里，指挥着数据和逻辑的舞蹈。
 * 当项目的脚步越走越远，vite.config.ts便开始散发出它独有的光芒。
 * 像一颗即将在夜空中绽放的星辰，它的温度升高，光芒四射，引领着旅程穿越无尽的数字海洋。
 * 在这个星辰的照耀下，每一个开发者都种下了梦想的种子：是否我也能化作一颗星辰，照亮自己的那片天空？
 */
